In my prior patents, U.S. Pat. Nos. 5,606,144, 9,286,876, and 9,286,877, and in other previous work a chaotic mapping technique is provided for generating variations on an existing work, for example, musical variations of a given musical work. It should be noted that the term “variation” is used herein to refer to any process by which some features of a work (such as a musical piece) change while other features remain the same. The term “variation technique” is used herein to refer to (1) any modification scheme, (2) any compositional procedure, or (3) any combination of elements (1) and (2).
An “improved chaotic mapping technique,” as described in my prior patents, produces musical variations of MIDI and MP3 files. The mapping in embodiments of my prior patents utilizes two chaotic trajectories from the Lorenz equations—a system comprising three nonlinear first order differential equationsdx/dt=σ(y−x)  (1)dy/dt=rx−y−xz  (2)dz/dt=xy−bz,  (3)where σ=10, b=8/3, and r=28 (E. N. Lorenz, “Deterministic nonperiodic flow,” J. Atmos. Sci. 20, 130-141 (1963)). Other embodiments use at least one scheme selected from the group consisting of (1) other chaotic systems, (2) probabilistic methods, (3) pattern matching, (4) machine learning, and (5) signal processing.
The Lorenz equations arise in applications ranging from lasers to private communications, and have also served as generators of “chaotic” music, where a chaotic system is allowed to free-run and its output converted into a series of notes, rhythms, and other musical attributes in order to create a piece from scratch. However, these approaches did not generate variations or mash-ups on an already completed piece.
The improved chaotic mapping of my prior patents utilizes a mapping strategy in conjunction with designated variation procedures to produce musical variations of MIDI (Musical Instrument Digital Interface) songs, as well as audio recordings, e.g., WAV and MP3. According to the improved chaotic mapping approach, chaotic algorithms are used to identify hole elements within an input series of notes or other elements. Algorithms are also used to identify substitution elements that are substituted for the hole elements.
The improved chaotic mapping of my prior two patents produces a rich array of MIDI and audio variations and mash-ups. Some embodiments from those two patents include:                Applications of chaotic mapping to inputs that are ordered sets of discrete items, such as MIDI files or other lists of notes, note durations, and note onset times,        Applications of chaotic mapping to inputs that are continuously varying functions, such as recordings of music. Some embodiments include parsing a continuous recording of sound into discrete notes, note durations, and time intervals between notes.        A given substitution element can be restricted to replacing only one hole element. A variation procedure can be applied to a selected substitution element. If the input is a musical input, a substitution element can be derived from music that is part of the input, distinct from the input but part of a musical composition to which the input belongs, or part of a musical composition to which the input does not belong.        A substitution element can be derived from a musical seed source or other seed source which is distinct from the input and includes an ordered set of elements. An element of the seed source can be selected which immediately follows an element which is at least similar to the element immediately preceding the hole element. A chaotic mathematical function can be applied to a seed source in order to select, modify, or select and modify a substitution element. The substitution element can be (1) a plurality of elements of the seed source, (2) modifications to elements of the seed source by any of scanning, stenciling, interval shift, insertion, reversal, inversion (dynamic), repetitive beat structure, repetitive phrase structure, or (3) any combination of (1) and (2).        For any of musical inputs and seed sources, providing a substitution element that can be modified by any of changing pitch order, pitch duration, pitch onset time; inverting a pitch (for example about a closest preceding pitch belonging to an element which is not a hole element); moving a note by a specified interval; and/or adding at least one note having a pitch which is offset by a specified musical interval from a pitch included in the hole element.        In some embodiments providing a substitution element that can be modified by application of a pitch or timing mask element to the hole element and applying at least one of “and,” “inclusive or,” and “exclusive or” logic between the mask and the hole element. The mask element can be another of the original elements or an outside element.        
FIG. 1A illustrates an application of improved chaotic mapping method, showing how the first 16 pitches of a variation of the Bach Prelude in C (from the Well-tempered Clavier, Book I) were constructed (FIG. 1A, part A). One pitch immediately stands out in the variation: the last pitch G # (shown in part A) does not occur in the original Bach Prelude (nor does its enharmonic equivalent Ab). The G # arises from improved chaotic mapping working in conjunction with Dynamic Inversion, described in more detail below.
FIG. 1A, part B shows the pitch sequence {pi} of the Bach Prelude in C where each pi denotes the ith pitch of the sequence. A fourth-order Runge-Kutta implementation of the Lorenz equations simulates a chaotic trajectory with initial condition (IC) of (1, 1, 1) where each x1,j, denotes the ith x-value of this first chaotic trajectory, shown in FIG. 1A, part C.
FIG. 1A, part D plots the sequence of x-values {x2,j}) of a second chaotic trajectory with ICs (1.002, 1, 1) differing from those of the first trajectory. The values in FIG. 1A part D have been rounded to two decimal places. (Rounding takes place after each trajectory has been simulated.) FIG. 1A, part E shows the result of applying a ‘hole-generating’ function, w(x2,j)=g(j), where g(j) is assigned the value of the index i of the least x1,i, for which x2,j≤x1,i, Blackened ‘holes’ indicate all j for which j=g(j), and signify those places in the variation that will retain the pitches of the original Bach. Open ‘holes’ indicate those j for which j≠g(j) and serve as holding places for new pitch events (‘filler’ events). As an example, for j=1, apply the function w(x2,j)=g(j) to determine the value of g(1): first deduce that the initial value of x2,1 is 1.002 from part D, which is now rounded to 1.00 before the hole-generating function is applied, as noted above; find the least x1,i≥x2,1 (i.e., find the smallest x1,i that equals or exceeds 1.00; the smallest x1,i is x1,1=1.00); take the value of the index i of x1,1 which is 1 and assign it to g(1)→g(1)=1.
Similarly, for j=9, first deduce the value of x2,9=15.24 from part D; find the least x1,i≥15.24 which is x1,9=15.26; take the value of the index i of x1,9 which is 9 and assign it to g(9)→g(9)=9. Applying the ‘hole-generating’ function to x2,1 and x2,9 yields blackened holes since j=g(j) in both cases. On the other hand, open holes denote those j for which j≠g(j). For example, for j=4, apply the function w(x2,j)=g(j) to determine the value of g(4): first deduce the value of x2,4=3.68 from part D; find the least x1,i≥3.68 which is x1,5=6.40; take the value of the index i of x1,5 which is 5 and assign it to g(4)→g(4)=5. Since j≠g(j), i.e., since 4≠g(4), an open hole results for location 4 in the Hole Template. Likewise, for Hole Template locations 5-7 and 16, it can be verified that j≠g(j), and so open holes arise in these locations as well.
Blackened holes indicate no change from the source Bach, and open holes indicate changes will occur in those locations. The notes that will change—Nc,4, Nc,5, Nc,6, Nc,7, and Nc,16—are indicated above the open holes. Each Nc,j denotes the pitch number of the jth pitch of the source piece for which j≠g(j). The unchanging notes of the Bach and the prior event pitches Ep,3 and Ep,15, which will serve as the reference pitches for the Dynamic Inversion process explained in parts F and G, are marked above the blackened holes. For example, prior pitch event Ep,3 represents the pitch immediately prior to four ‘open holes’ in the variation; here Ep,3 corresponds to the third blackened hole=G4. This prior pitch event Ep,3=G4 functions as the reference pitch for the Dynamic Inversion of those Bach input file pitches 4-7, i.e., Nc,4, Nc,5, Nc,6, and Nc,7, which will all be inverted about the G4. Thus, the Nc,j's will be inverted about the pitch occupying the previous blackened hole—here, G4. In the Dynamic Inversion procedure, reference pitches are defined by, and change according to the Hole Template of improved chaotic mapping. Thus, each differs from any other reference pitch, e.g., Ep,3≠Ep,15 so that the reference pitches are dynamic rather than fixed or static. By contrast, in past and current commercial computer practice, inversions are taken about a reference pitch that is fixed, e.g., middle C (C4) or a user-supplied reference pitch.
The process of Dynamic Inversion is set up in FIG. 1A, part F using explicit pairing between all the pitches from A3 to E5 with the numbers 57 to 76 (middle C=C4=pitch number 60) so that each unit increment results in a pitch one half step higher. Those pitches Nc,j of the original Bach which will ultimately change in the variation are marked (Nc,4, Nc,5, Nc,6, Nc,7, and Nc,16). Each of these corresponds to one of the open holes 4-7 and 16 in the Hole Template of part E. Each prior event pitch Ep,j−1 that serves as a reference pitch for the Dynamic Inversion procedure is also indicated (Ep,3 and Ep,15). The prior event pitches Ep,3 and Ep,15 correspond to the third and fifteenth blackened holes, respectively, of the Hole Template of part E.
Since j=g(j) for the first three events of the variation, as already determined by the Hole Template of part E, the original Bach pitches will occur in locations 1-3 of the variation. The same is true for the 8th-15th pitches of the variation. However, since j≠g(j) for j=4, . . . , 7, 16, the variation will change from the source according to the expression for improved chaotic Mapping working in conjunction with said Dynamic Inversion procedure:
                                          f            ⁡                          (                              x                                  2                  ,                  j                                            )                                =                                    {                                                                                                                  p                                                  g                          ⁡                                                      (                            j                            )                                                                                              ,                                                                                                  j                      =                                              g                        ⁡                                                  (                          j                          )                                                                                                                                                                                                        P                        N                                            ,                                                                                                  j                      ≠                                              g                        ⁡                                                  (                          j                          )                                                                                                                                }                        =                          p              j              ′                                      ,                            (        4        )            where g(j) is assigned the value of the index i of the least x1,j for which x2,j≤x1,i. Here, Dynamic Inversion is used to calculate each new pitch PN of the variation using the expression N=−(Nc,j−Ep,j−1)MOD12+Ep,j−1, where Nc,j denotes the pitch number of the jth pitch of the source piece for which j≠g(j), and Ep,j−1 is defined in terms of Nc,j as the pitch number of the (j−1) pitch of the original pitch sequence that occurs before one or more consecutive Nc,j's. As stated earlier, the prior event Ep,j−1 serves as the dynamic reference pitch about which the inversion of one or more consecutive Nc,j's will occur.
To find p′4, the fourth pitch of the variation, calculate PN where N=−(Nc,4−Ep,3)MOD12+Ep,3=−(72−67)+67=62→P62 D4=p′4, the 4th pitch of the variation. Pitches p′5, p′6, and p′7 result from a similar procedure. The mod 12 option did not apply in determining p′4. Though it was not necessary here, it can be invoked to preclude inversions that move up/down from any reference pitch by more than an octave. To see how the G #4 is assigned to p′16, again calculate PN where N=−(Nc,16−Ep,15)MOD12+Ep,15=−(76−72)+72=68→P68=G #4=p′16.
Applying improved chaotic Mapping in conjunction with Dynamic Inversion yields the variation sequence displayed in FIG. 1A, part G: {p′j}={Pg(1), . . . , Pg(3), P62,P58, P67,P62, Pg(8), . . . , Pg(15), P68}. Pitches 1-3 and 8-15 in the variation, corresponding to blackened holes, do not change from those occurring at locations 1-3 and 8-15 in the pitch sequence of the source Bach. But pitches 4-7 and pitch 16, corresponding to open holes do change from those occurring in locations 4-7 and 16 in the source Bach, in accordance with improved chaotic Mapping and the Dynamic Inversion process.
FIG. 1B shows an exemplary algorithm, (Blocks [1] through [7]), of improved chaotic mapping of FIG. 1A, applicable to signals that are discrete-time, continuous-time, or a combination of discrete-time and continuous-time. To make variations of a sequence of events, improved chaotic mapping is given by
                                          f            ⁡                          (                              x                                  2                  ,                  j                                            )                                =                                    {                                                                                                                  e                                                  i                          =                                                      g                            ⁡                                                          (                              j                              )                                                                                                                          ,                                                                                                  j                      =                                              g                        ⁡                                                  (                          j                          )                                                                                                                                                                                                        E                        j                                            ,                                                                                                  j                      ≠                                              g                        ⁡                                                  (                          j                          )                                                                                                                                }                        =                          E              j              ′                                      ,                            (        5        )            where E′j represents any event of the variation, ei=g(j) denotes any of pitch, chord, phrase, beat, note rhythmic value, note-group, musical event from the source work, and combinations thereof, that will appear unchanged in the variation as a result of the condition j=g(j), and Ej represents any musical event in the variation produced by improved chaotic mapping in conjunction with a designated variation procedure whenever j≠g(j). The term g(j) is assigned the value of the index i of the least x1,i, for which x2,j≤x1,i.
In Block [1], the first chaotic trajectory {x1,i, y1,i, z1,i}, indexed on i, with initial conditions (x1,1, y1,1, z1,1) is launched. A second chaotic trajectory {x2,j, y2,j, z2,j}, indexed on j, with initial conditions (x2,1, y2,1, z2,1) is simulated in Block [2]. The hole-generating function w(x2,j)=g(j) of Block [3] takes each x-value of the second chaotic trajectory (possibly including y-, z-values of same) and determines g(j), where g(j) is assigned the value of the index i of the least x1,i such that x2,j≤x1,i. The hole-generating function creates the Hole Template of Block [4] according to whether or not j=g(j). If so, a blackened hole appears at the appropriate j; if not, an open hole occurs.
Block [4] shows a hypothetical example of a Hole Template (resulting from Block [3]), where M represents any given integer. Here, M is the hypothetical value of the leftmost j in the plotting. Suppose that applying the hole-generating function, w(x2,j)=g(j), to x2,j results in j=g(j), and equivalently M=g(M) for the j=M location in the drawing. Thus, for j=M, a blackened hole results. Suppose further that the same process applied to the next x-value x2,j, where j=M+1, also results in j=g(j)→M+1=g(M+1). Then for j=M+1, a blackened hole appears. As stated earlier, blackened holes denote those j for which j=g(j). Here, blackened holes result from applying the hole-generating function to the two x-values x2,M and x2,M+1, as well as to the x-values x2,M+5 and x2,M+6. But now suppose that for x2,j where j=M+2, the hole-generating function returns a value for g(j) that does not equal j. Thus an open hole occurs for j=M+2. Ditto for j=M+3 and j=M+4.
Block [5A] supplies the event sequence {ei} of a source work-which can include MIDI events, audio events, or both—to improved chaotic mapping of Block [5B]. Note that if the event list consists of more than one musical attribute (e.g., MIDI pitch, onset time, and velocity), each can be varied separately, or together, by applying this exemplary algorithm to one or more axes in 3-space, or to n axes in n-space, e.g., where n axes result from harnessing additional chaotic systems.
Improved chaotic Mapping is applied in Block [5B] whenever j=g(j), i.e., at the blackened holes. This results in events ei=g(j) occurring in the same spot in the variation as in the source piece. Thus for this hypothetical example, original events eM, eM+1, eM+5, eM+6 fill the blackened holes E′j=M, E′j=M+1, E′j=M+5, and E′j=M+6 in the variation shown in Block [7].
Block [6A] provides a designated variation procedure which will work in tandem with improved chaotic Mapping of Block [6B] to generate new events Ej whenever j≠g(j), i.e., at the open holes. Thus, for this hypothetical example, new events EM+2, EM+3, and EM+4 fill the open holes and are equivalent to E′j=M+2, E′j=M+3, and E′j=M+4, in the variation shown in Block [7].
Block [7] contains the variation's event sequence {E′j} which comprises the sum of Blocks [5B]+[6B]. The contents of the blackened holes remain unchanged from the source event sequence. The open holes are filled with new events Ej supplied by improved chaotic mapping in conjunction with a designated variation procedure(s). The variation is produced by merging the contents of the blackened and open holes to give the variation's final event sequence {E′j}={ . . . , eg(M), eg(M+1), EM+2, EM+3, EM+4, eg(M+5), eg(M+6), . . . }.
In the embodiments described above, the hole-generating function of improved chaotic mapping produces a Hole Template where the number of open vs. blackened holes can vary depending on the initial conditions for the chaotic trajectories 1 and 2. In other embodiments, other schemes such as probabilistic methods can produce a Hole Template capable of receiving new events via, for instance, dynamic inversion. One inherent advantage of improved chaotic mapping over a probabilistic scheme lies in the fact that improved chaotic mapping has several built-in ‘controls’ or ‘sliders’ that determine the amount of variability—all arising from a natural mechanism for variability present in chaotic systems, i.e., the sensitive dependence of chaotic trajectories to initial conditions. Thus, the degree to which the initial conditions chosen for the second chaotic trajectory differ from those assigned to the first trajectory will directly affect the amount of variability present in a variation.
Parsing
Where the input to the improved chaotic mapping is a continuous function, it can be automatically divided or “parsed” into a sequential series of original elements which are segments of the input that can include (1) eighth note beats, (2) quarter note beats, (3) groups of eighth note beats, (4) groups of quarter note beats, and/or (5) combinations thereof, through automated detection of any of time signature beats, boundaries between musical phrases, and repetitive structures.
Automatic parsing of an input into segments or events such as segments comprising specified numbers of eighth-note or quarter-note beats, e.g., groups of 4 quarter note beats, can be accomplished by any number of audio beat detection methods. These give a sequence of timings that can then be used to cut the audio file into desired groupings, also referred to herein as “parses”, “events”, and elements (said terms being used herein as synonyms).
For example, detection of quarter note divisions allow groups of 2, 4, 8 or more quarter note divisions to function as parsed events. Each of the parses can be delineated by a start time plus a duration. A number of papers have been written on beat detection, e.g., “Multi-Feature Beat Tracking” [J. Zapata, M. Davies, and E. Gómez, IEEE/ACM Transactions on Audio, Speech, and Language Processing, Vol. 22, No. 4, April 2014]. There are many sites online that feature various open-source algorithms, e.g., Essentia and Queen Mary vamp plugins for Audacity.
Musical Variation, Remixes, and Mash-Ups.
Musical variation occupies a storied place in music, from the lutenists of 16th c. Spain to the remixes and mash-ups of today. In every society past and present, remix and mash-up variations spin contemporary songs into fresh ones.
For example, whenever Bach and his large musical family got together, they sang popular songs both comic and lewd-all at the same time. In composing his Goldberg Variations, Bach combined several German folksongs to create his final variation.
Today DJs carry on the tradition, remixing and mashing White Albums with Black Albums to create something new, like the Grey Album by Danger Mouse.
Many of today's songs are made by laying down tracks that are then combined to produce a full song. Thus each track is a “component” of the full song. First the instrumental track might be recorded. Then the vocalist(s) sings the song melody and records the solo vocal track. Finally, the component tracks, i.e. the solo vocal track and the instrumental track, combine to make the full song. But once the full song has been recorded, the vocal track by itself and the instrumental track by itself have little value, except for DJs and remix/mash-up aficionados. They take tracks and re-combine them in new and interesting ways, while adding effects like filtering, flanging, scratching, beat repeating, echo/delay, reverb, etc. In short, they take audio tracks and use digital audio workstations (DAWs) to create new takes, interpretations, and versions of the original song(s). But DJ skill requires time, effort, and money.
For the purposes of this description and the accompanying claims, “component”, also referred to as “component track”, means a track that is included in a musical composition, such as (1) an instrumental track, (2) a vocal track, (3) a percussion track, (4) any associated track contributing to the song, 5) any added track to a song, or (6) any combination(s) thereof. A “composition” means a work such as (1) a written musical score, (2) sound recording, (3) written text, (4) spoken text, (5) any component track of a song, or (6) any combination(s) thereof.
Prior work offered methods and apparatus for generating musical variations as shown in “Method and Apparatus for Computer-Aided Variation of Music and other Sequences, including variation by Chaotic Mapping” U.S. Pat. No. 9,286,876 and U.S. Pat. No. 9,286,877 (CIP). These methods enabled the process of creating song variations with the click of a few buttons, thus opening up the creative process to anyone with a digital device, computer, or mobile phone.
In accordance with prior work methods, a mash-up variation was made by beat-matching two different songs, concatenating both, then parsing the concatenated file, after which the improved chaotic mapping is applied, thus producing holes which are replaced with elements of both songs, some of which elements may have undergone a designated variation procedure. But these prior work methods do not teach application of the improved chaotic mapping method to the process of structuring the mash-up in the first place.
Accordingly, despite the successes of my improved chaotic mapping method, the mash-ups produced according to these prior work strategies can sometimes be limited in structure.
What is needed, therefore, is a method that emphasizes structure amidst variation when producing a mash-up of ordered inputs such as musical inputs, so as to produce a mash-up with discernible structure that enables it to be perceived as a song in its own right.